iT邦幫忙

2024 iThome 鐵人賽

DAY 28
0
Python

Django - 製作網頁一點通系列 第 28

Day28 - 任務留言功能實作

  • 分享至 

  • xImage
  •  

我們接下來會建立以下幾個頁面

  • 首頁
  • 登入頁面
  • 註冊頁面
  • 任務頁面

昨天我們做了共享任務的表單,今天來做任務留言的功能。

  1. URL
path('task/comment/<slug:id>',comment_task),
  1. comment_task視圖
@login_required
def comment_task(request, id):
    user = request.user
    tasks = Task.objects.filter(user_id=user)
    # 取得共享的任務
    sharedTasks = SharedTask.objects.filter(Q(user=user) | Q(task__user_id=user))
    # 排除共享任務後的我的任務
    my_tasks = tasks.exclude(id__in=sharedTasks.values_list('task__id', flat=True))
    task = Task.objects.get(id=id)

    previous_url = request.META.get('HTTP_REFERER')

    if request.method == 'POST':
        form = CommentForm(request.POST)  
        if form.is_valid():
            comment = form.cleaned_data['comment']
            try:
                comment_id = Comment.objects.latest('id').id + 1
            except:
                comment_id = 0
            Comment.objects.create(id=comment_id, task=task, user=user, content=comment)
            return redirect('task')  # 重定向到任務列表頁面
    else:
        form = CommentForm()  
    action = "留言"

    return render(request, 'edit_task.html', locals())
  1. CommentForm表單
class CommentForm(forms.Form):
    comment = forms.CharField(label='描述', widget=forms.Textarea(attrs={'name': 'body'}))

無留言
https://ithelp.ithome.com.tw/upload/images/20241012/20169478bqaswzvjIX.png

留言表單
https://ithelp.ithome.com.tw/upload/images/20241012/20169478GKeo0s94oK.png

有留言
https://ithelp.ithome.com.tw/upload/images/20241012/20169478Lg5DtOx13A.png


上一篇
Day27 - 多人共享任務功能實作
系列文
Django - 製作網頁一點通28
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言